

************************************************************************************************************************************************
************************************************************************************************************************************************
*** Paper "Drivers of Political Participation: The Role of Partisanship, Identity and Incentives in Mobilizing Zambian Citizens"   
*** Replication Dofile for Submission to Comparative Political Studies
*** Authors: Prisca Jöst, Matt Krönke, Sarah Lockwood and Ellen Lust
************************************************************************************************************************************************
************************************************************************************************************************************************

clear all 

set maxvar 30000

use "Data_for_Replication.dta"


*********************************
*** PREPARATION OF VARIABLES ***
*********************************

** The dependent variable is measured on a 4 points likert scale

* Participation DV: How likely are you to spend a day help campaign for a parliamentary candidate/ attend a community meeting, expressing local concerns to the MP candidate? very likely, somewhat, not very, not likely at all -- recode with 4 very likely

generate participation = .
replace participation = 1 if q1y == 4
replace participation = 2 if q1y == 3
replace participation = 3 if q1y == 2
replace participation = 4 if q1y == 1

* rescale variable to |0,1]
generate participation2 = (participation - 1) / (4-1)

* Leader Sanctioning DV: How likely is it that your {Authority} would treat you better or worse in the future, depending on whether or not you {Activity}?

generate leadermonitor = .
replace leadermonitor = 1 if q4y == 4
replace leadermonitor = 2 if q4y == 3
replace leadermonitor = 3 if q4y == 2
replace leadermonitor = 4 if q4y == 1

generate leadermonitor2 = (leadermonitor - 1) / (4-1)

* Community Sanctioning DV: How likely do you think it is that other members of your village or neighbor would treat you better or worse in the future, depending on whether or not you {Activity}?

generate commonitor = .
replace commonitor = 1 if q5y == 4
replace commonitor = 2 if q5y == 3
replace commonitor = 3 if q5y == 2
replace commonitor = 4 if q5y == 1

generate commonitor2 = (commonitor - 1) / (4-1)


* Enjoy DV: How much do you think you would enjoy {Activity}?

generate enjoy = .
replace enjoy = 1 if q6y == 4
replace enjoy = 2 if q6y == 3
replace enjoy = 3 if q6y == 2
replace enjoy = 4 if q6y == 1

generate enjoy2 = (enjoy - 1) / (4-1)


* co-gender: demo_q4 for respondent and Gender for MP 

generate CoGender = .
replace CoGender = 1 if demo_q4 == 2 & Gender == 2 | demo_q4 == 1 & Gender == 1
replace CoGender = 0 if demo_q4 == 2 & Gender == 1 | demo_q4 == 1 & Gender == 2

tab CoGender


* Baselines (Survey Experiment):

*Table 5. Baselines for Analyses.
*Variable	Baseline
*Activity	Campaigning only
*Authority	Religious leader
*CoEthnicity	Non-coethnic
*CoPartisan	Non-copartisan
*LeaderSanction	No leader monitoring
*ComSanction	No community sanctioning
*SocialBenefit	No friends joining
*Payment	No payment
*Origin	Not from area
*Residence	Lives on the other side of the district
*Gender	Male



********** MAIN MODELS WITH ONLY EXPERIMENTAL ATTRIBUTES  (Figure 5 in main text) **********

eststo Main1 : reg participation2 i.Activity i.Authority ib2.CoEthnic ib2.Partisanship ib2.Origin ib2.Residence i.CoGender ib2.SocialBenefit ib2.Payment i.SanctioningLeader i.SanctioningCommunity

esttab Main1, se star(+ 0.10 * 0.05 ** 0.01 *** 0.001)
*esttab using Basic1.doc, se star(+ 0.10 * 0.05 ** 0.01 *** 0.001)

coefplot, xline(0) keep(*CoEthnic *Partisanship *CoGender *SocialBenefit *Payment *Origin *Residence) name(Main1)

********** MAIN MODELS WITH OTHER DVs  **********

eststo Main2 : reg leadermonitor2 i.Activity i.Authority ib2.CoEthnic ib2.Partisanship ib2.Origin ib2.Residence i.CoGender ib2.SocialBenefit ib2.Payment i.SanctioningLeader i.SanctioningCommunity

esttab Main2, se star(+ 0.10 * 0.05 ** 0.01 *** 0.001)
*esttab using Basic2.doc, se star(+ 0.10 * 0.05 ** 0.01 *** 0.001)

coefplot, xline(0) keep(*Activity *CoEthnic *Partisanship *SocialBenefit *Payment *Origin *Residence *CoGender *SanctioningLeader *SanctioningCommunity) name(Main2)


eststo Main3 : reg commonitor2 i.Activity i.Authority ib2.CoEthnic ib2.Partisanship ib2.Origin ib2.Residence i.CoGender ib2.SocialBenefit ib2.Payment i.SanctioningLeader i.SanctioningCommunity

esttab Main3, se star(+ 0.10 * 0.05 ** 0.01 *** 0.001)
*esttab using Basic3.doc, se star(+ 0.10 * 0.05 ** 0.01 *** 0.001)

coefplot, xline(0) keep(*Activity *CoEthnic *Partisanship *SocialBenefit *Payment *Origin *Residence *SanctioningLeader *SanctioningCommunity) name(Main3)


eststo Main5 : reg enjoy2 i.Activity i.Authority ib2.CoEthnic ib2.Partisanship ib2.Origin ib2.Residence i.CoGender ib2.SocialBenefit ib2.Payment i.SanctioningLeader i.SanctioningCommunity

esttab Main5, se star(+ 0.10 * 0.05 ** 0.01 *** 0.001)
*esttab using Basic3.doc, se star(+ 0.10 * 0.05 ** 0.01 *** 0.001)

coefplot, xline(0) keep(*Activity *CoEthnic *Partisanship *SocialBenefit *Payment *Origin *Residence *SanctioningLeader *SanctioningCommunity) name(Main5)


* Present all coefficients for Partisanship in one coefficient plot 

reg participation2 i.Activity i.Authority ib2.Partisanship ib2.CoEthnic ib2.Origin ib2.Residence i.CoGender ib2.SocialBenefit ib2.Payment i.SanctioningLeader i.SanctioningCommunity
estimates store r1

reg leadermonitor2 i.Activity i.Authority ib2.Partisanship ib2.CoEthnic ib2.Origin ib2.Residence i.CoGender ib2.SocialBenefit ib2.Payment i.SanctioningLeader i.SanctioningCommunity
estimates store r2

reg commonitor2 i.Activity i.Authority ib2.Partisanship ib2.CoEthnic ib2.Origin ib2.Residence i.CoGender ib2.SocialBenefit ib2.Payment i.SanctioningLeader i.SanctioningCommunity
estimates store r3

reg enjoy2 i.Activity i.Authority ib2.Partisanship ib2.CoEthnic ib2.Origin ib2.Residence i.CoGender ib2.SocialBenefit ib2.Payment i.SanctioningLeader i.SanctioningCommunity
estimates store r4


coefplot (r1 \ r2 \ r3 \ r4 ), xline(0) keep(*Partisanship) aseq swapnames ///
    coeflabels(r1 = "Participation" ///
               r2 = "Leader Sanctions"  ///
               r3 = "Community Sanctions" ///
			   r4 = "Enjoy Activity")
			   
coefplot (r1 \ r2 \ r3 \ r4 ), xline(0) keep(*CoEthnic) aseq swapnames ///
    coeflabels(r1 = "Participation" ///
               r2 = "Leader Sanctions"  ///
               r3 = "Community Sanctions" ///
			   r4 = "Enjoy Activity")
			   
coefplot (r1 \ r2 \ r3 \ r4 ), xline(0) keep(*SocialBenefit) aseq swapnames ///
    coeflabels(r1 = "Participation" ///
               r2 = "Leader Sanctions"  ///
               r3 = "Community Sanctions" ///
			   r4 = "Enjoy Activity")
			   
coefplot (r1 \ r2 \ r3 \ r4 ), xline(0) keep(*Partisanship *CoEthnic *SocialBenefit) aseq swapnames ///
    coeflabels(r1 = "Participation" ///
               r2 = "Leader Sanctions"  ///
               r3 = "Community Sanctions" ///
			   r4 = "Enjoy Activity")
			   
**** Ordered Logistic Regression (Table D3 in Appendix) ****

ologit participation i.Activity i.Authority ib2.CoEthnic ib2.Partisanship ib2.Origin ib2.Residence i.Gender ib2.SocialBenefit ib2.Payment i.SanctioningLeader i.SanctioningCommunity, or

ologit commonitor i.Activity i.Authority ib2.CoEthnic ib2.Partisanship ib2.Origin ib2.Residence i.Gender ib2.SocialBenefit ib2.Payment i.SanctioningLeader i.SanctioningCommunity, or

ologit leadermonitor i.Activity i.Authority ib2.CoEthnic ib2.Partisanship ib2.Origin ib2.Residence i.Gender ib2.SocialBenefit ib2.Payment i.SanctioningLeader i.SanctioningCommunity, or

ologit enjoy i.Activity i.Authority ib2.CoEthnic ib2.Partisanship ib2.Origin ib2.Residence i.Gender ib2.SocialBenefit ib2.Payment i.SanctioningLeader i.SanctioningCommunity, or

		   
**** Main Model with additional individual level controls ****

* gender 

generate female = .
replace female = 1 if demo_q4 == 2
replace female = 0 if demo_q4 == 1

* age 
generate age = .
replace age = 1 if demo_q3 == 18 | demo_q3 == 19 | demo_q3 == 20 | demo_q3 == 21 | demo_q3 == 22 | demo_q3 == 23 | demo_q3 == 24 | demo_q3 == 25 | demo_q3 == 26 | demo_q3 == 27 | demo_q3 == 28 | demo_q3 == 29 | demo_q3 == 30 | demo_q3 == 31 | demo_q3 == 32 | demo_q3 == 33 | demo_q3 == 34
replace age = 2 if demo_q3 == 35 | demo_q3 == 36 | demo_q3 == 37 | demo_q3 == 38 | demo_q3 == 39 | demo_q3 == 40 | demo_q3 == 41 | demo_q3 == 42 | demo_q3 == 43 | demo_q3 == 44 | demo_q3 == 45 | demo_q3 == 46 | demo_q3 == 47 | demo_q3 == 48 | demo_q3 == 49 | demo_q3 == 50 | demo_q3 == 51 | demo_q3 == 52 | demo_q3 == 53 | demo_q3 == 54
replace age = 3 if demo_q3 == 55 | demo_q3 == 56 | demo_q3 == 57 | demo_q3 == 58 | demo_q3 == 59 | demo_q3 == 60 | demo_q3 == 61 | demo_q3 == 62 | demo_q3 == 63 | demo_q3 == 64 | demo_q3 == 65 | demo_q3 == 66 | demo_q3 == 67 | demo_q3 == 68 | demo_q3 == 69 | demo_q3 == 70 | demo_q3 == 71 | demo_q3 == 72 | demo_q3 == 73 | demo_q3 == 74
replace age = 4 if demo_q3 == 75 | demo_q3 == 76 | demo_q3 == 77 | demo_q3 == 78 | demo_q3 == 79 | demo_q3 == 80 | demo_q3 == 81 | demo_q3 == 82 | demo_q3 == 83 | demo_q3 == 84 | demo_q3 == 85 | demo_q3 == 86 | demo_q3 == 87 | demo_q3 == 88 | demo_q3 == 89 | demo_q3 == 90 | demo_q3 == 91 | demo_q3 == 92
label define age 1 "18-34" 2 "35-54" 3 "55-74" 4 "75-92"
label values age age


* ethnicty 

generate ethnicity = .
replace ethnicity = 1 if PD_q2 == 1
replace ethnicity = 2 if PD_q2 == 4
replace ethnicity = 3 if PD_q2 == 33
replace ethnicity = 4 if PD_q2 == 2 | PD_q2 == 3 | PD_q2 == 5 | PD_q2 == 6 | PD_q2 == 7 | PD_q2 == 8 | PD_q2 == 9 | PD_q2 == 10 | PD_q2 == 11 | PD_q2 == 12 | PD_q2 == 13 | PD_q2 == 14 | PD_q2 == 15 | PD_q2 == 16 | PD_q2 == 17 | PD_q2 == 18 | PD_q2 == 19 | PD_q2 == 20 | PD_q2 == 21 | PD_q2 == 22 | PD_q2 == 23 | PD_q2 == 24 | PD_q2 == 25 | PD_q2 == 26 | PD_q2 == 27 | PD_q2 == 28 | PD_q2 == 29 | PD_q2 == 30 | PD_q2 == 31 | PD_q2 == 32 | PD_q2 == 34 | PD_q2 == 35 | PD_q2 == 36
label define ethnicity 1 "Bemba" 2 "Chewa" 3 "Tumbuka" 4 "Other"
label values ethnicity ethnicity

* education

gen educ = .
replace educ = 0 if demo_q26 == 1 | demo_q26 == 3
replace educ = 1 if demo_q26 == 2 | demo_q26 == 4 | demo_q26 == 5  | demo_q26 == 6 | demo_q26 == 8 | demo_q26 == 9 | demo_q26 == 10 | demo_q26 == 11

generate educ2 = .
replace educ2 = 1 if demo_q26 == 1 | demo_q26 == 3
replace educ2 = 2 if demo_q26 == 9 | demo_q26 == 6
replace educ2 = 3 if demo_q26 == 2  | demo_q26 == 8  
replace educ2 = 4 if demo_q26 == 4 | demo_q26 == 5 | demo_q26 == 10 | demo_q26 == 11        
label define educ2 1 "No formal" 2 "At least some Primary" 3 "Secondary" 4 "Post-secondary or higher"
label values educ2 educ2


* poor 

generate poor = .
replace poor = 1 if demo_q30 == 4 | demo_q30 == 5
replace poor = 0 if demo_q30 == 2 | demo_q30 == 3



******* Analysis with indivdiual level controls (Table E3 in Appendix) *******

eststo MainC : reg participation2 i.Activity i.Authority ib2.CoEthnic ib2.Partisanship ib2.Origin ib2.Residence i.CoGender ib2.SocialBenefit ib2.Payment i.SanctioningLeader i.SanctioningCommunity female i.age i.ethnicity educ poor


esttab MainC, se star(+ 0.10 * 0.05 ** 0.01 *** 0.001)
esttab using BasicC.doc, se star(+ 0.10 * 0.05 ** 0.01 *** 0.001)

coefplot, xline(0) keep(*CoEthnic *Partisanship *CoGender *SocialBenefit *Payment *Origin *Residence *female *age *ethnicity *educ *poor) name(MainC)


******* Incumbent support (Table E5) ******* 

*If the parliamentary elections were held tomorrow, which party's candidate would you vote for?
gen incumb = .
replace incumb = 1 if q36 == 7
replace incumb = 0 if q36 == 1 | q36 == 2 | q36 == 3 | q36 == 4 | q36 == 5 | q36 == 6 | q36 == 8 | q36 == 9 | q36 == 10 | q36 == 11 | q36 == 12 | q36 == 13 | q36 == 14 | q36 == 15 | q36 == 16 | q36 == 19 

eststo MainIS : reg participation2 i.Activity i.Authority ib2.CoEthnic i.incumb##ib2.Partisanship ib2.Origin ib2.Residence i.CoGender ib2.SocialBenefit ib2.Payment i.SanctioningLeader i.SanctioningCommunity 

esttab MainIS, se star(+ 0.10 * 0.05 ** 0.01 *** 0.001)
*esttab using BasicIS.doc, se star(+ 0.10 * 0.05 ** 0.01 *** 0.001)

margins incumb, dydx(Partisanship) asbalanced post
 

******* Interaction between co-ethnicity and co-partisanship (Table E8 in Appendix) *******

eststo MainD : reg participation2 i.Activity i.Authority ib2.CoEthnic##ib2.Partisanship ib2.Origin ib2.Residence i.CoGender ib2.SocialBenefit ib2.Payment i.SanctioningLeader i.SanctioningCommunity

esttab MainD, se star(+ 0.10 * 0.05 ** 0.01 *** 0.001)
*esttab using BasicD.doc, se star(+ 0.10 * 0.05 ** 0.01 *** 0.001)

coefplot, xline(0) 


************************************************************************************
************** SUB-SAMPLE ANALYSES: NOTE DROPPING DECISIONS *********************
************************************************************************************

******* Robustness check: Without Independent Voters (Table D4 in Appendix) *******
 

******* drop if independent/not close to any party and do not vote and do not know and refuse to answer
tab q36
labellist q36
drop if q36 == 17
drop if q36 == 18
drop if q36 == 20
drop if q36 == 21


********** Rerun main model with experimental attributes only **********

eststo MainD : reg participation2 i.Activity i.Authority ib2.CoEthnic ib2.Partisanship ib2.Origin ib2.Residence i.CoGender ib2.SocialBenefit ib2.Payment i.SanctioningLeader i.SanctioningCommunity

esttab MainD, se star(+ 0.10 * 0.05 ** 0.01 *** 0.001)
*esttab using BasicD.doc, se star(+ 0.10 * 0.05 ** 0.01 *** 0.001)

coefplot, xline(0) keep(*CoEthnic *Partisanship *CoGender *SocialBenefit *Payment *Origin *Residence) name(MainD)



******* Robustness check: With less engaged Voters (Table D5 in Appendix) ******* 

* Have you ever attended a meeting to express community concerns to an MP or campaigned for an MP candidate? q8exp

generate ever = .
replace ever = 1 if q8y == 1
replace ever = 0 if q8y == 2

tab ever

* drop if respondent has participated in meetings or campaigned in the past 

drop if ever == 1

********** Rerun main model with experimental attributes only **********

eststo Mainever : reg participation2 i.Activity i.Authority ib2.CoEthnic ib2.Partisanship ib2.Origin ib2.Residence i.CoGender ib2.SocialBenefit ib2.Payment i.SanctioningLeader i.SanctioningCommunity

esttab Mainever, se star(+ 0.10 * 0.05 ** 0.01 *** 0.001)
*esttab using Basicever.doc, se star(+ 0.10 * 0.05 ** 0.01 *** 0.001)

coefplot, xline(0) keep(*CoEthnic *Partisanship *CoGender *SocialBenefit *Payment *Origin *Residence) name(Mainever)



* Realistic Scenario? q3y: Do you think your {Authority} would support an MP candidate such as the one described here? (Table E1 and E4 in Appendix)

generate realistic = . 
replace realistic = 1 if q3y == 1
replace realistic = 0 if q3y == 2

* drop if respondent report this to be no realistic scenario

drop if realistic==0

eststo MainR1 : reg participation2 i.Activity i.Authority ib2.CoEthnic ib2.Partisanship ib2.Origin ib2.Residence i.CoGender ib2.SocialBenefit ib2.Payment i.SanctioningLeader i.SanctioningCommunity

esttab MainR1, se star(+ 0.10 * 0.05 ** 0.01 *** 0.001)
*esttab using BasicR1.doc, se star(+ 0.10 * 0.05 ** 0.01 *** 0.001)


******* Run with full sample: Descriptive Evidence: Have you been asked by the leaders to participate in the past? (Figure E1 in Appendix)

* Has your {Authority} ever asked you to {Activity}?

tab q7y 

generate ever_asked = .
replace ever_asked = 1 if q7y == 1
replace ever_asked = 0 if q7y == 2

tab ever_asked

tab ever_asked Activity if Authority==1, col row
tab ever_asked Activity if Authority==2, col row
tab ever_asked Activity if Authority==3, col row

graph bar, over(ever_asked) by(Activity Authority)



************ URBAN - RURAL DIVIDES (Table E7 in Appendix) **************

******* Analysis with Urban Communities ******* 

keep if demo_q12==4

eststo MainUC : reg participation2 i.Activity i.Authority ib2.CoEthnic ib2.Partisanship ib2.Origin ib2.Residence i.CoGender ib2.SocialBenefit ib2.Payment i.SanctioningLeader i.SanctioningCommunity

esttab MainUC, se star(+ 0.10 * 0.05 ** 0.01 *** 0.001)
*esttab using BasicUD.doc, se star(+ 0.10 * 0.05 ** 0.01 *** 0.001)

coefplot, xline(0) keep(*CoEthnic *Partisanship *CoGender *SocialBenefit *Payment *Origin *Residence) name(MainUC)


******* Analysis with Peri-Urban Communities ******* 

keep if demo_q12==2

eststo MainPUC : reg participation2 i.Activity i.Authority ib2.CoEthnic ib2.Partisanship ib2.Origin ib2.Residence i.CoGender ib2.SocialBenefit ib2.Payment i.SanctioningLeader i.SanctioningCommunity

esttab MainPUC, se star(+ 0.10 * 0.05 ** 0.01 *** 0.001)
*esttab using BasicPUC.doc, se star(+ 0.10 * 0.05 ** 0.01 *** 0.001)

coefplot, xline(0) keep(*CoEthnic *Partisanship *CoGender *SocialBenefit *Payment *Origin *Residence) name(MainPUC)	
	

******* Analysis with Rural Communities ******* 

keep if demo_q12==3
eststo MainRC : reg participation2 i.Activity i.Authority ib2.CoEthnic ib2.Partisanship ib2.Origin ib2.Residence i.CoGender ib2.SocialBenefit ib2.Payment i.SanctioningLeader i.SanctioningCommunity

esttab MainRC, se star(+ 0.10 * 0.05 ** 0.01 *** 0.001)
*esttab using BasicRC.doc, se star(+ 0.10 * 0.05 ** 0.01 *** 0.001)

coefplot, xline(0) keep(*CoEthnic *Partisanship *CoGender *SocialBenefit *Payment *Origin *Residence) name(MainRC)	




